// 确保DOM加载完成
document.addEventListener('DOMContentLoaded', () => {
  const toggle = document.getElementById('autoStartToggle');
  const statusLabel = document.getElementById('autoStartStatus');
  const configTextarea = document.querySelector('.config-textarea');
  
  // 初始化错误状态显示
  const errorContainer = document.createElement('div');
  errorContainer.className = 'error-container';
  errorContainer.style.color = 'red';
  errorContainer.style.margin = '10px 0';
  errorContainer.style.padding = '10px';
  errorContainer.style.backgroundColor = '#ffebee';
  errorContainer.style.display = 'none';
  document.body.prepend(errorContainer);
  
  // 显示错误信息
  const showError = (message) => {
    errorContainer.textContent = `错误: ${message}`;
    errorContainer.style.display = 'block';
    setTimeout(() => {
      errorContainer.style.display = 'none';
    }, 10000);
  };
  
  // 获取当前状态并更新UI
  window.electronAPI.getStatus().then(({ result, error }) => {
    if (error) {
      showError(`获取自启动状态失败: ${error}`);
      return;
    }
    toggle.checked = result;
    statusLabel.textContent = result ? '已启用' : '已禁用';
  });
  
  // 监听开关变化
  toggle.addEventListener('change', () => {
    const isEnabled = toggle.checked;
    window.electronAPI.toggle(isEnabled).then(({ error }) => {
      if (error) {
        showError(`更新自启动状态失败: ${error}`);
        toggle.checked = !isEnabled; // 恢复状态
        return;
      }
      statusLabel.textContent = isEnabled ? '已启用' : '已禁用';
      console.log(`开机自启动已${isEnabled ? '开启' : '关闭'}`);
    });
  });
  
  // 配置文件修改提示
  if (configTextarea) {
    let isModified = false;
    
    configTextarea.addEventListener('input', () => {
      isModified = true;
      // 在标题栏显示修改标记
      if (!document.title.includes(' [已修改]')) {
        document.title += ' [已修改]';
      }
    });
    
    // 定期自动保存（如果有修改）
    setInterval(() => {
      if (isModified) {
        console.log('检测到配置修改，尝试自动保存');
        // 这里假设存在保存按钮或保存逻辑
        const saveButton = document.querySelector('.save-button');
        if (saveButton) {
          saveButton.click();
          isModified = false;
          document.title = document.title.replace(' [已修改]', '');
        }
      }
    }, 30000); // 每30秒检查一次
  }
  
  // 响应心跳检测
  const heartbeatUnsub = window.electronAPI.onHeartbeat((timestamp) => {
    console.log('收到心跳检测:', new Date(timestamp).toISOString());
    // 可以在这里执行一些前端健康检查
  });
  
  // 页面卸载时清理
  window.addEventListener('beforeunload', () => {
    heartbeatUnsub();
  });
  
  // 初始化语音合成权限
  window.electronAPI.requestSpeechPermission().then(({ result, error }) => {
    if (error) {
      console.warn('获取语音合成权限失败:', error);
    } else if (result) {
      console.log('语音合成权限已获取');
    }
  });
});

// 捕获前端JavaScript错误
window.addEventListener('error', (event) => {
  console.error('前端JavaScript错误:', event.error);
  // 显示错误给用户
  const errorContainer = document.querySelector('.error-container') || document.createElement('div');
  errorContainer.textContent = `应用错误: ${event.error.message || '发生未知错误'}`;
  errorContainer.style.color = 'red';
  errorContainer.style.padding = '10px';
  errorContainer.style.backgroundColor = '#ffebee';
  document.body.prepend(errorContainer);
  
  // 尝试重新加载页面（如果错误严重）
  if (event.error.message.includes('Uncaught') || 
      event.error.message.includes('TypeError') ||
      event.error.message.includes('ReferenceError')) {
    setTimeout(() => {
      if (confirm('应用发生错误，是否重新加载页面？')) {
        window.location.reload();
      }
    }, 3000);
  }
});

// 捕获未处理的Promise拒绝
window.addEventListener('unhandledrejection', (event) => {
  console.error('未处理的Promise拒绝:', event.reason);
  const errorContainer = document.querySelector('.error-container') || document.createElement('div');
  errorContainer.textContent = `操作错误: ${event.reason.message || String(event.reason)}`;
  errorContainer.style.color = 'red';
  errorContainer.style.padding = '10px';
  errorContainer.style.backgroundColor = '#ffebee';
  document.body.prepend(errorContainer);
  event.preventDefault();
});
    